﻿using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GameLib {
    interface IMod : ICloneable {
        String Id {
            get;
            set;
        }

        String Title {
            get;
            set;
        }

        String File {
            get;
            set;
        }

        String Uri {
            get;
            set;
        }

        Boolean Obsolete {
            get;
            set;
        }

        Boolean Patch {
            get;
            set;
        }

        public void addConflict(IModConflict conflict);

        public void addDependency(IModDependency dependency);

        public void addMessage(IModMessage message);

        public int countConflicts();

        public int countDependencies();

        public int countMessages();

        public IModConflict getConflict(int index);

        public IModDependency getDependency(int index);

        public IModMessage getMessage(int index);

        public void removeConflict(int index);

        public void removeConflict(IModConflict conflict);

        public void removeDependency(int index);

        public void removeDependency(IModDependency dependency);

        public void removeMessage(int index);

        public void removeMessage(IModMessage message);
    }
}
